1 安装mysql 如教程7

主服务器的my.cnf:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
#skip-name-resolve
#设置3306端口
port = 3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
log-error=/usr/local/mysql/log/mysqld.log
pid-file=/usr/local/mysql/pid/mysqld.pid
user=mysql
server-id=1
port=3306
##要给从机同步的库
#binlog-do-db=
##不给从机同步的库(多个写多行)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
#server-id=1
##开启二进制日志
log-bin=/usr/local/mysql/binary/mysql1-bin
max-binlog-size = 500M
##自动清理 7 天前的log文件,可根据需要修改
expire_logs_days=7
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#lower_case_table_name=1
max_allowed_packet=16M
[client]
socket=/var/lib/mysql/mysql.sock

从服务器的my.cnf :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
#skip-name-resolve
#设置3306端口
port = 3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#lower_case_table_name=1
max_allowed_packet=16M
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/usr/local/mysql/log/mysqld.log
pid-file=/usr/local/mysql/pid/mysqld.pid
user=mysql
server-id=2
port=3306
##从库上的参数
read_only = 1
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=1 #从机禁止写
super_read_only=1 #从机禁止写
[client]
socket=/var/lib/mysql/mysql.sock
1
2
# mkdir -p /usr/local/mysql/{data,logs,pid}
# chown -R webadmin:webadmin /usr/local/mysql

配置主从

在主服务器上授权从服务器复制帐号 (每次重启mysql,都要执行一次)

1
2
3
4
5
# mysql -uroot -p
Enter password:

mysql > grant replication slave on *.* to webadmin@'172.17.22.51.%' identified by 'def_passwd';
mysql > show master status\G

从服务器上配置连接主服务器 (重启mysql,不需要每次都执行一次,仅执行一次即可)

1
2
3
4
5
6
7
8
9
10
11
12
13
# mysql -uroot -p
Enter password:
mysql > stop slave;
mysql >change master to
master_host='172.17.22.50',
master_port=3306,
master_user='webadmin',
master_password='def_passwd',
master_log_file='mysql1-bin.000008',
master_log_pos=454;

mysql > start slave;
mysql > show slave status\G

验证

主服务器上创建数据库、表、并插入数据

1
2
3
4
5
6
7
8
9
10
mysql > CREATE DATABASE test_ab default charset utf8;
mysql > CREATE TABLE test_ab.a1(id int(2),name varchar(20));
mysql > INSERT INTO test_ab.a1(id,name) VALUES(1,"测试1");
mysql> select * from test_ab.a1;
+------+---------+
| id | name |
+------+---------+
| 1 | 测试1 |
+------+---------+
1 row in set (0.00 sec)

从服务器上查询该数据,验证是否复制过来

1
2
3
4
5
6
7
mysql> select * from test;
+------+---------+
| id | name |
+------+---------+
| 1 | 测试1 |
+------+---------+
1 row in set (0.00 sec)

至此完成。

Comments